local options = {
    auto_install = true,
    ensure_installed = {
        -- "vim",
        "lua",
        -- "luadoc",
        "bash",
        "json",
        "json5",
        -- "jq",
        "yaml",

        -- Docker
        "dockerfile",
        -- "regex",
        "toml",

        -- "gitcommit",
        -- "git_config",
        -- "diff",

        -- Markdown
        "markdown",
        "markdown_inline",

        -- Go Lang
        -- "go",
        -- "gomod",
        -- "gowork",
        -- "gosum",

        -- Web Dev
        "javascript",
        "typescript",
        "tsx",
        "html",
        "astro",
        "svelte",
        -- "nue",
        "css",
        "rust"
    },
    query_linter = {
        enable = true,
        use_virtual_text = true,
        lint_events = { "BufWrite", "CursorHold" },
    },
    textsubjects = {
        enable = true,
        keymaps = {
            ["."] = "textsubjects-smart",
            [";"] = "textsubjects-container-outer",
            ["i;"] = "textsubjects-container-inner",
        },
    },
    textobjects = {
        swap = {
            enable = true,
            swap_next = {
                ["sa"] = "@parameter.inner",
            },
            swap_previous = {
                ["sA"] = "@parameter.inner",
            },
        },
    },
    rainbow = {
        enable = true,
        extended_mode = false,
        max_file_lines = 1000,
        query = {
            "rainbow-parens",
            html = "rainbow-tags",
            javascript = "rainbow-tags-react",
            tsx = "rainbow-tags",
        },
    },
    tree_setter = {
        enable = true,
    },
    indent = {
        enable = true,
    },
    playground = {
        enable = true,
    },


    highlight = {
        enable = true,
        use_languagetree = true,
    },


}

require("nvim-treesitter.configs").setup(options)
